60 research outputs found
Equivalence of two Fixed-Point Semantics for Definitional Higher-Order Logic Programs
Two distinct research approaches have been proposed for assigning a purely
extensional semantics to higher-order logic programming. The former approach
uses classical domain theoretic tools while the latter builds on a fixed-point
construction defined on a syntactic instantiation of the source program. The
relationships between these two approaches had not been investigated until now.
In this paper we demonstrate that for a very broad class of programs, namely
the class of definitional programs introduced by W. W. Wadge, the two
approaches coincide (with respect to ground atoms that involve symbols of the
program). On the other hand, we argue that if existential higher-order
variables are allowed to appear in the bodies of program rules, the two
approaches are in general different. The results of the paper contribute to a
better understanding of the semantics of higher-order logic programming.Comment: In Proceedings FICS 2015, arXiv:1509.0282
On the Semantic Approaches to Boolean Grammars
Boolean grammars extend context-free grammars by allowing conjunction and negation in rule bodies. This new formalism appears to be quite expressive and still efficient from a parsing point of view. Therefore, it seems reasonable to hope that boolean grammars can lead to more expressive tools that can facilitate the compilation process of modern programming languages. One important aspect concerning the theory of boolean grammars is their semantics. More specifically, the existence of negation makes it difficult to define a simple derivation-style semantics (such as for example in the case of context-free grammars). There have already been proposed a number of different semantic approaches in the literature. The purpose of this paper is to present the basic ideas behind each method and identify certain interesting problems that can be the object of further study in this area
General Logic Programs as Infinite Games
In [vE86] M.H. van Emden introduced a simple game semantics for definite logic programs. Recently [RW05,GRW05], the authors extended this game to apply to logic programs with negation. Moreover, under the assumption that the programs have a finite number of rules, it was demonstrated in [RW05,GRW05] that the game is equivalent to the well-founded semantics of negation. In this paper we present work-in-progress towards demonstrating that the game of [RW05,GRW05] is equivalent to the well-founded semantics even in the case of programs that have a countably infinite number of rules. We argue however that in this case the proof of correctness has to be more involved. More specifically, in order to demonstrate that the game is correct one has to define a refined game in which each of the two players in his first move makes a bet in the form of a countable ordinal. Each ordinal can be considered as a kind of clock that imposes a "time limit" to the moves of the corresponding player. We argue that this refined game can be used to give the proof of correctness for the countably infinite case
Overview of an abstract fixed point theory for non-monotonic functions and its applications to logic programming
The purpose of the present paper is to give an overview of our joint work with Zoltán Ésik, namely the development of an abstract fixed point theory for a class of non-monotonic functions [4] and its use in providing a novel denotational semantics for a very broad extension of classical logic programming [1]. Our purpose is to give a high-level presentation of the main developments of these two works, that avoids as much as possible the underlying technical details, and which can be used as a mild introduction to the area
Constructive Negation in Extensional Higher-Order Logic Programming
Abstract Extensional higher-order logic programming has been recently proposed as an interesting extension of classical logic programming. An important characteristic of the new paradigm is that it preserves all the well-known properties of traditional logic programming. In this paper we enhance extensional higher-order logic programming with constructive negation. We argue that the main ideas underlying constructive negation are quite close to the existing proof procedure for extensional higher-order logic programming and for this reason the two notions amalgamate quite conveniently. We demonstrate the soundness of the resulting proof procedure and describe an actual implementation of a language that embodies the above ideas. In this way we obtain the first (to our knowledge) higher-order logic programming language supporting constructive negation and offering a new style of programming that genuinely extends that of traditional logic programming
- …